﻿/// <summary>
/// Summary Trabalho Pratico de CSharp Linguagens de Progrmação
/// Summary Autor João Alturas
/// Summary Numero 6197
/// Summary Data 2015-01-17
/// </summary>

using System;
using System.Drawing;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
using DataTable = System.Data.DataTable;
using GraphLib;
using System.Windows.Forms.DataVisualization;
using System.Windows.Forms.DataVisualization.Charting;


/// <summary>
/// Summary Namespace Trab
/// </summary>
namespace Trab
{
    /// <summary>
    /// Summary Descriçao da Classe Form1 declaração das variaveis.
    /// param ano_inicio
    /// parm ano_fim
    /// param estatisticas
    /// param array stats
    /// </summary>
    public partial class Form1 : Form
    {
        private string ano_inicio;
        private string ano_fim;
        private int estatistica;
        private string[] stats;

        /// <summary>
        /// Summary Metodo public Form1 construtor do metodo
        /// param ano_inicio
        /// parm ano_fim
        /// param estatisticas
        /// </summary>
        public Form1(string ano_inicio, string ano_fim, int estatistica)
        {
            this.stats = new String[] { 
                "IPC Global (1981 =100)",
                "Variação Anual (Taxa de Inflação)",
                "remuneração miníma mensal",
                "remuneração máxima mensal",
                "PIB per capita anual",
                "Rendimento nacional bruto per capita anual",
                "Rendimento disponível bruto per capita anual",
                "Remunerações per capita anual"
            };
            this.ano_inicio = ano_inicio;
            this.ano_fim = ano_fim;
            this.estatistica = estatistica;
            InitializeComponent();
        }

        /// <summary>
        /// Summary Metodo Form1_Load vai ler os dados do ficheiro Excell
        /// Vai criar a Base de dados e preencher os dados vindos do ficheiro
        /// </summary>

        private void Form1_Load(object sender, EventArgs e)
        {

            try
            {

                System.Data.OleDb.OleDbConnection MyConnection;

                System.Data.DataSet DtSet;

                System.Data.OleDb.OleDbDataAdapter MyCommand;

                MyConnection = new System.Data.OleDb.OleDbConnection
                    ("provider=Microsoft.Jet.OLEDB.4.0;Data Source='d:\\IPC_Portugal_1977_2013.xls';Extended Properties=Excel 8.0;");

                MyCommand = new System.Data.OleDb.OleDbDataAdapter
                    ("select Ano, ([" + this.stats[this.estatistica] + "]) as valor from [Dados$] WHERE ano >= " + this.ano_inicio + 
                " and ano <= " + ano_fim, MyConnection);

                MyCommand.TableMappings.Add("Table", "TestTable");
                
                DtSet = new System.Data.DataSet();
                
                MyCommand.Fill(DtSet);

                dataGridView1.DataSource = DtSet.Tables[0];

                chartGraficoEstatisticas.DataSource = DtSet.Tables[0];
                chartGraficoEstatisticas.Series["Series1"].XValueMember =
                    Convert.ToString(DtSet.Tables[0].Columns["Ano"]);

                chartGraficoEstatisticas.Series["Series1"].YValueMembers =
                    Convert.ToString(DtSet.Tables[0].Columns["valor"]);
                chartGraficoEstatisticas.DataBind();

                titulo.Text = "Estatística " + this.stats[this.estatistica] + " entre " + this.ano_inicio + " e " + this.ano_fim;
                
                MyConnection.Close();

            }

            catch (Exception ex)
            {

                MessageBox.Show(ex.ToString());

            }




        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }


        private void chartGraficoEstatisticas_Click(object sender, EventArgs e)
        {
            
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

    }

}

